package com.xunlai.infra.permission.manager.web.service;

import com.xunlai.infra.permission.common.exception.PermissionBusinessException;
import com.xunlai.infra.permission.manager.web.vo.department.CreateDepartmentReqVo;
import com.xunlai.infra.permission.manager.web.vo.department.DepartmentListVo;
import com.xunlai.infra.permission.manager.web.vo.department.QueryDepartmentVo;
import com.xunlai.infra.permission.manager.web.vo.department.UpdateDepartmentReqVo;

import java.util.List;

/**
 * @author liang
 * @date 12/11/22 9:33 PM
 */
public interface DepartmentService {

    Long createDepartment(CreateDepartmentReqVo createDepartmentReqVo);
    List<Long> createDepartment(List<CreateDepartmentReqVo> createDepartmentReqVo);

    List<DepartmentListVo> listDepartment(QueryDepartmentVo queryDepartmentVo);

    void updateDepartment(UpdateDepartmentReqVo updateDepartmentReqVo) throws PermissionBusinessException;

    boolean deleteDepartment(Long id, boolean recursive);
}
